Traditional scatter plots have been widely used to display correlation between two variables (or attributes). A scatter plot is a chart that uses Cartesian coordinates (e.g., x-axis or y-axis coordinates) to display values for the two variables. The data displayed in the scatter plot is a collection of points, each having one coordinate on the horizontal axis and one on the vertical axis. An example of a traditional scatter plot is depicted in FIG. 1, where the horizontal axis variable represented in the example of FIG. 1 is time duration (e.g., time length of a telephone call), and the vertical axis corresponds to charge (e.g., dollar amount charged for the telephone call). In the example of FIG. 1, each point in the scatter plot represents a data record of a telephone call.
Various points representing respective telephone calls are plotted in the scatter plot of FIG. 1, where each point corresponds to a particular pair of time duration value and charge value. Generally, a relatively dense region 100 of the scatter plot contains points that represent data records having time duration values under 1,000 (seconds) and charge values under $100. Note that, typically, the vast majority of telephone calls are under 1,000 seconds with charges under $100. Consequently, in the scatter plot of FIG. 1, the points in the region 100 that share the same or almost the same time duration and charge values lay one on top of each other, which results in occlusion of such points. Occlusion prevents a user from seeing the true number of points in dense regions of the scatter plot. Effectively, a traditional scatter plot can show just a relatively small number of distinct data points, even though there may be a much larger number of data points that the viewer cannot see as a result of occlusion (due to overlay of data points). Such occlusion of data points can hide the true extent of the relationship between different variables in a traditional scatter plot.